import request from '@/utils/request'

// 用户相关接口
export const userApi = {
  // 登录
  login(data) {
    return request({
      url: '/api/login',
      method: 'post',
      data
    })
  },
  // 注册
  register(data) {
    return request({
      url: '/api/register',
      method: 'post',
      data
    })
  },
  // 获取当前用户信息
  getCurrentUser() {
    return request({
      url: '/api/user',
      method: 'get'
    })
  }
}

// 总览相关接口
export const overviewApi = {
  // 获取总览数据
  getOverview(userId) {
    return request({
      url: '/api/overview',
      method: 'get',
      params: userId ? { userId } : undefined
    })
  }
}

// 账户相关接口
export const accountApi = {
  // 获取所有账户
  getAccounts(userId) {
    return request({
      url: '/api/accounts',
      method: 'get',
      params: userId ? { userId } : undefined
    })
  },
  // 获取账户详情
  getAccountDetail(id, userId) {
    return request({
      url: `/api/accounts/${id}`,
      method: 'get',
      params: userId ? { userId } : undefined
    })
  },
  // 创建账户
  createAccount(data) {
    return request({
      url: '/api/accounts',
      method: 'post',
      data
    })
  },
  // 更新账户
  updateAccount(id, data) {
    return request({
      url: `/api/accounts/${id}`,
      method: 'put',
      data
    })
  },
  // 删除账户
  deleteAccount(id) {
    return request({
      url: `/api/accounts/${id}`,
      method: 'delete'
    })
  },
  // 获取账户下的记录
  getAccountRecords(accountId, userId) {
    return request({
      url: `/api/accounts/${accountId}/records`,
      method: 'get',
      params: userId ? { userId } : undefined
    })
  }
}

// 记录相关接口
export const recordApi = {
  // 获取账户下的记录
  getRecords(accountId) {
    return request({
      url: `/api/accounts/${accountId}/records`,
      method: 'get'
    })
  },
  // 获取记录详情
  getRecordDetail(id) {
    return request({
      url: `/api/records/${id}`,
      method: 'get'
    })
  },
  // 创建记录
  createRecord(data) {
    return request({
      url: '/api/records',
      method: 'post',
      data
    })
  },
  // 更新记录
  updateRecord(id, data) {
    return request({
      url: `/api/records/${id}`,
      method: 'put',
      data
    })
  },
  // 删除记录
  deleteRecord(id) {
    return request({
      url: `/api/records/${id}`,
      method: 'delete'
    })
  }
}

// 获取用户信息
export function getUserInfo(userId) {
  return request({
    url: '/api/user',
    method: 'get',
    params: userId ? { userId } : undefined
  });
}

// 更新港币钱包金额
export function updateHkdAmount(amount) {
  return request({
    url: '/api/user/hkd-amount',
    method: 'put',
    data: { amount }
  });
}

// 更新港币汇率
export function updateHkdRate(rate) {
  return request({
    url: '/api/user/hkd-rate',
    method: 'put',
    data: { rate }
  });
} 

// 更新昨日总额
export function updateYesterdayAmount(amount) {
  return request({
    url: '/api/user/yesterday-amount',
    method: 'put',
    data: { amount }
  });
}

// 重置密码
export function resetPassword(oldPassword, newPassword) {
  return request({
    url: '/api/user/reset-password',
    method: 'put',
    data: { oldPassword, newPassword }
  });
}

// 根据用户ID获取账户状态（只读）
export function getUserStatusById(userId) {
  return request({
    url: `/api/user/${userId}/status`,
    method: 'get'
  });
}